// 这个文件判断步骤是否已填写必填项

import store from '@/store'
/* 判断数据是否为空*/

// 基础数据
export function baseInfoReview(data) {
	const BasicField = [
		{ value: '产品代码（六位）', key: 'fundCode' }, // 产品代码（六位）
		{ value: '协会代码', key: 'fundOutsideCode' }, // 协会代码
		{ value: '产品名称', key: 'fundFullName' }, // 产品名称
		{ value: '产品简称', key: 'fundName' }, // 产品简称
		{ value: '受托责任', key: 'fiduciaryDuty' }, // 受托责任
		{ value: '结算币种', key: 'settleCurrency' }, // 结算币种
		{ value: '面值（单位：元）', key: 'faceValue' }, // 面值
		{ value: '运作方式', key: 'operateMode' }, // 运作方式
		{ value: '产品类别', key: 'fundType' }, // 产品类别
		{ value: '计划类型', key: 'planType' }, // 计划类型
		{ value: '管理方式（人行二期）', key: 'managerStyle' }, // 管理方式（人行二期）
		{ value: '是否有发行机构提前终止权（人行二期）', key: 'issuerEarlyTermFlag' }, // 是否有发行机构提前终止权（人行二期）
		{ value: '是否收益权转让产品（人行二期）', key: 'usufructTransferProductFlag' }, // 是否收益权转让产品（人行二期）
		{ value: '是否货币市场基金（人行二期）', key: 'currencyMarketFundFlag' }, // 是否货币市场基金（人行二期）
		{ value: '是否通道类业务', key: 'isChannelBusiness' }, // 是否通道类业务
		{ value: '是否QDII', key: 'isQdii' }, // 是否QDII
		{ value: '是否指数基金', key: 'isIndexFund' }, // 是否指数基金
		{ value: '是否MOM', key: 'isMom' }, // 是否MOM
		{ value: '是否私募基金', key: 'isPrivateFund' }, // 是否私募基金
		{ value: '是否养老金产品', key: 'isPensionProduct' }, // 是否养老金产品
		{ value: '是否基本养老金', key: 'isBasicPension' }, // 是否基本养老金
		{ value: '是否社保基金', key: 'isSocialSecurity' }, // 是否社保基金
		{ value: '是否职业年金', key: 'isOccupationalPension' }, // 是否职业年金
		{ value: '是否企业年金', key: 'isAnnuityPension' }, // 是否企业年金
		{ value: '产品资产是否存在增信措施（人行二期）', key: 'isAddcreditMeasure' }, // 产品资产是否存在增信措施（人行二期）
		{ value: '是否净值型产品', key: 'isNetWorthProduct' }, // 是否净值型产品
		{ value: '是否结构化产品', key: 'isStructuredProduct' }, // 是否结构化产品
		{ value: '风险等级', key: 'riskGrade' }, // 风险等级
		{ value: '业绩比较基准', key: 'performanceBaseline' }, // 业绩比较基准
		{ value: '产品类型-专项', key: 'productAssetType' }, // 产品类型-专项
		{ value: '产品类型-资产投向', key: 'productSpecialType' }, // 产品类型-资产投向
		{ value: '产品类型（证监会资管月报）', key: 'productAssetReportType' }, //  产品类型（证监会资管月报）
		{ value: '是否专项（证监会资管月报）', key: 'isSpecialAssetReport' }, // 是否专项（证监会资管月报）
		{ value: '是否资产证券化业务（证监会资管月报）', key: 'isAssetSecuritizationBusiness' }, // 是否资产证券化业务（证监会资管月报）
		{ value: '是否为资管产品投资单一项目或证券（证监会资管月报）', key: 'isAssetManagementProduct' }, // 是否为资管产品投资单一项目或证券（证监会资管月报）
		{ value: '开放频率（协会）', key: 'associationOpenFrequency' }, // 开放频率（协会）
		{ value: '跨境理财通（人行）', key: 'crossBorderFinancial' }, // 跨境理财通（人行）
		{ value: '以财产权信托名义开展的资金信托（人行）', key: 'propertyFundTrust' }, // 以财产权信托名义开展的资金信托（人行）
		{ value: '非港股通交易日是否暂停申赎', key: 'noneHKTIsStopApplyRansom' } // 非港股通交易日是否暂停申赎
	]
	const unfilledList = []
	BasicField.forEach(item => {
		if (!data[item.key]) {
			unfilledList.push(item.value)
		}
	})
	if (data.isStructuredProduct === '0') { // 判断分级比例
		if (!data.gradingRatio) {
			unfilledList.push('分级比例')
		}
	}
	if (data.isNetWorthProduct === '0') { // 判断估值方法和估值频率
		if (!data.valuationWay) {
			unfilledList.push('估值方法')
		}
		if (!data.valuationFrequency) {
			unfilledList.push('估值频率')
		}
	}
	if (data.isAddcreditMeasure === '0') { // 判断产品资产是否存在增信措施（人行二期）
		if (!data.addCreditFormType) {
			unfilledList.push('增信形式（人行二期）')
		}
		if (!data.addCreditOrganType) {
			unfilledList.push('增信机构类型（人行二期）')
		}
		if (!data.addcreditMeasureType) {
			unfilledList.push('增信措施类别')
		}
	}
	if (data.isAnnuityPension === '0') { // 判断企业年金计划类型
		if (!data.annuityPlanType) {
			unfilledList.push('企业年金计划类型')
		}
		if (data.annuityPlanType === '1') {
			if (!data.annuityTrusteeMode) {
				unfilledList.push('企业年金受托模式')
			}
		}
	}
	if (data.isPensionProduct === '0') { // 判断是否分期账户
		if (!data.isInstAcc) {
			unfilledList.push('是否分期账户')
		}
	}
	if (data.isPrivateFund === '0') { // 判断私募基金类别
		if (!data.privateFundType) {
			unfilledList.push('私募基金类别')
		}
	}
	if (data.isMom === '0') { // 判断是否是子单元
		if (!data.isSubAssets) {
			unfilledList.push('是否子资产单元')
		}
		if (data.isSubAssets === '0') {
			if (!data.momFundCode) {
				unfilledList.push('管理人中管理人产品代码')
			}
		}
	}
	if (data.operateMode === '1') {
		if (!data.openFrequency) {
			unfilledList.push('开放频率')
		}
		if (data.operateMode === '1' && data.openFrequency === '9') {
			if (!data.openFrequencyRemark) {
				unfilledList.push('开放频率备注')
			}
		}
	}
	if (data.isInnovateNature === '0') { // 判断创新属性
		if (!data.innovateNatureRemark) {
			unfilledList.push('创新属性')
		}
	}

	return unfilledList
}

// 日期
export function dateReview(data) {
	const unfilledList = []
	if (!data.finishFilingDate) {
		unfilledList.push('完成备案日期')
	}
	if (!data.contractEndDate) {
		unfilledList.push('合同预计到期日（证监）')
	}
	if (!data.contractEndDatePeople) {
		unfilledList.push('合同预计到期日（人行）')
	}
	if (!data.raiseStartDate) {
		unfilledList.push('募集起始日')
	}
	if (store.state.fundStep.specialBaseInfo.planType === '2') {
		if (!data.initialFilingDate) {
			unfilledList.push('初始备案日期')
		}
	}
	if (store.state.fundStep.specialBaseInfo.evolveBeforeCode) {
		if (!data.formalEvolveDate) {
			unfilledList.push('正式转型日期')
		}
	}
	if (store.state.fundStep.specialBaseInfo.operateMode === '1' && !!store.state.fundStep.specialBaseInfo.openFrequency && store.state.fundStep.specialBaseInfo.openFrequency !== '1') {
		if (!data.nextOpenFirstDate) {
			unfilledList.push('下次开放期首日')
		}
	}
	return unfilledList
}

// 机构信息
export function iorganInfoReview(data) {
	const unfilledList = []
	if (!data.isThirdPartyCustody) {
		unfilledList.push('是否第三方托管')
	}
	if (!data.investAdvisorOrgan) {
		unfilledList.push('投资顾问机构类型')
	}
	if (data.investAdvisorOrgan !== 'Z') {
		if (!data.investAdvisorRate) {
			unfilledList.push('投资顾问费率')
		}
	}
	if (!data.managementId) {
		unfilledList.push('管理人名称')
	}
	if (data.iscustodyBranchOrgan === '0') {
		if (!data.custodyBranchOrganName) {
			unfilledList.push('托管人分支机构名称')
		}
	}
	return unfilledList
}

// 费率信息
export function rateReview(data) {
	const unfilledList = []
	if (!data.feeRateAlgorithm) {
		unfilledList.push('管理费算法')
	} else {
		if (data.feeRateAlgorithm === '2') {
			if (!data.feeRateInfoList.find(item => item.feeRateType === '9').feeRate) {
				unfilledList.push('管理费率')
			}
		}
	}
	if (!data.custodyFeeAlgorithm) {
		unfilledList.push('托管费算法')
	} else if (data.custodyFeeAlgorithm === '1') {
		if (!data.feeRateInfoList.find(item => item.feeRateType === '7').feeRate) {
			unfilledList.push('托管费率')
		}
	}
	if (!data.isAchieveReward) {
		unfilledList.push('是否提取业绩报酬')
	}
	if (data.isAchieveReward === '0') {
		if (!data.accrualPointTime) {
			unfilledList.push('计提时点')
		}
		if (!data.rewardExplain) {
			unfilledList.push('业绩报酬说明')
		}
		if (!data.accrualDatum) {
			unfilledList.push('计提基准')
		}
		if (!data.accrualRatio) {
			unfilledList.push('计提比例')
		}
	}
	for (let index = 0; index < data.feeRateInfoList.length; index++) {
		const element = data.feeRateInfoList[index]
		if (element.feeRateType === '8') {
			if (!element.salesServiceFeeAlgorithm) {
				if (!unfilledList.includes('销售服务费算法')) {
					unfilledList.push('销售服务费算法')
				}
			} else if (element.salesServiceFeeAlgorithm === '2') {
				if (!element.feeRate) {
					if (!unfilledList.includes('销售服务费率')) {
						unfilledList.push('销售服务费率')
					}
				}
			}
		}
	}
	return unfilledList
}

// 投资相关
export function inverReview(data) {
	const unfilledList = []
	if (data.isContainSpclLimit === '0') {
		if (!data.spclLimitRemark) {
			unfilledList.push('特殊投资限制备注')
		}
	}
	return unfilledList
}

// 风控信息
export function risklnReview(data) {
	const unfilledList = []
	if (data.earlyWarnLine === '0') {
		if (!data.earlyWarnNetWorth) {
			unfilledList.push('预警线对应的资产管理计划净值')
		}
		if (!data.earlyWarnLineType) {
			unfilledList.push('预警线类型')
		}
	}
	if (data.stopLossLine === '0') {
		if (!data.stopLossNetWorth) {
			unfilledList.push('止损线对应的资产管理计划净值')
		}
		if (!data.stopLossLineType) {
			unfilledList.push('止损线类型')
		}
	}
	if (data.otherRiskStep === '0') {
		if (!data.otherRiskExpression) {
			unfilledList.push('其他风控措施-合同表述')
		}
	}
	if (data.maxRetreat === '0') {
		if (!data.retreatEarlyWarnNetWorth) {
			unfilledList.push('回撤预警线对应的资产管理计划净值')
		}
		if (!data.retreatWarnLineType) {
			unfilledList.push('回撤预警线类型')
		}
	}
	if (data.stopLossWarningLine === '0') {
		if (!data.retreatStopLossNetWorth) {
			unfilledList.push('回撤止损线对应的资产管理计划净值')
		}
		if (!data.retreatStopLossLineType) {
			unfilledList.push('回撤止损线类型')
		}
	}
	if (store.state.fundStep.specialBaseInfo.planType === '2') {
		if (!data.managerIsInvestment) {
			unfilledList.push('管理人是否投入资金')
		}
		if (data.managerIsInvestment === '0') {
			if (!data.managerInvestmentAmount) {
				unfilledList.push('管理人投入资金参与金额')
			}
			if (!data.managerInvestmentRatio) {
				unfilledList.push('管理人投入资金参与比例')
			}
		}
		if (!data.managerIsPartake) {
			unfilledList.push('管理人附属机构自有资金是否参与')
		}
		if (data.managerIsPartake === '0') {
			if (!data.managerPartakeAmount) {
				unfilledList.push('管理人及其附属机构自有资金参与金额（万元）')
			}
			if (!data.managerPartakeRatio) {
				unfilledList.push('管理人及其附属机构自有资金参与比例（%）')
			}
		}
	}
	return unfilledList
}

// 委托人信息
export function consignReview(data, cityList) {
	const unfilledList = []
	if (!data.consignerName) {
		unfilledList.push('委托人名称')
	}
	if (!data.subjectType) {
		unfilledList.push('主体类型')
	} else {
		if (!data.csrcType) {
			unfilledList.push('证监会分类')
		}
		if (!data.certificateType) {
			unfilledList.push('证件类型')
		}
	}
	if (!data.certificateNumber) {
		unfilledList.push('证件号码')
	}
	if (!data.peopleMax) {
		unfilledList.push('人行大类')
	}
	if (data.peopleMax) {
		if (['1306', '1307'].includes(data.peopleMax)) {
			if (!data.peopleMin) {
				unfilledList.push('人行小类')
			}
		}
	}
	if (!data.province) {
		unfilledList.push('省份')
	}
	if (cityList.length && !data.city) {
		unfilledList.push('城市')
	}
	return unfilledList
}

// 文件信息
export function FileInfoReview(fundFileInfo) {
	const unfilledList = []
	if (!fundFileInfo['filingLetterId'] || !fundFileInfo['filingLetterId'].finalFileId && !fundFileInfo['filingLetterId'].firstFileId && !fundFileInfo['filingLetterId'].sealedFileId) {
		unfilledList.push('协会备案函')
	}
	return unfilledList
}

// 完成页面
export function submitPageReview(fundBaseInfo, isEnterDateHtmlPro, btnType) {
	const unfilledList = []
	if (['3', '7'].includes(btnType)) {
		if (isEnterDateHtmlPro === '3') {
			if (!fundBaseInfo.changeDate) {
				unfilledList.push('日期')
			}
			if (!fundBaseInfo.raisingStatus) {
				unfilledList.push('募集状态')
			}
			if (!fundBaseInfo.changeRemark) {
				unfilledList.push('备注')
			}
		} else {
			if (!fundBaseInfo.changeDate) {
				unfilledList.push('日期')
			}
			if (!fundBaseInfo.changeRemark) {
				unfilledList.push('备注')
			}
		}
	} else {
		if (!fundBaseInfo.checkLiableId) {
			unfilledList.push('复核人')
		}
		if (!fundBaseInfo.personLiableId) {
			unfilledList.push('责任人')
		}
	}
	return unfilledList
}
